'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  const jwt = app.middleware.jwt(app.config.keys);

  router.get('/', controller.home.index);
  // 书籍相关
  router.resources('book', '/api/book', jwt, app.controller.book);
  router.get('/api/book', jwt, app.controller.book.index);
  router.post('/api/book', jwt, app.controller.book.create);
  router.put('/api/book', jwt, app.controller.book.update);
  // 上传书籍
  router.post('/api/uploadBook', jwt, app.controller.book.uploadBook);
  // 查询首页数据
  router.get('/api/getHomeData', app.controller.book.getHomeData);
  // 获取全部书籍
  router.get('/api/getAllbook', app.controller.book.getAllbook);
  // 根据名字模糊查询书籍
  router.get('/api/getBooksByName', app.controller.book.getBooksByName);
  // 根据id获取书籍内容
  router.get('/api/getBookById', app.controller.book.getBookById);
  // 根据id添加cv
  router.get('/api/addBookCvById', app.controller.book.addBookCvById);
  // 根据id下载书籍
  router.get('/api/downloadBook', app.controller.book.downloadBook);
  // 根据分类获取图书
  router.get('/api/getBookByClassify', app.controller.book.getBookByClassify);

  // 章节相关
  // 获取书籍的全部章节
  router.get('/api/category/:bid/', app.controller.category.index);
  // 获取所有章节的标题
  router.get('/api/getAllCategoryTitle', app.controller.category.getAllCategoryTitle);
  // 获取书籍的某个章节
  router.get('/api/category/:bid/:cid', app.controller.category.show);
  // 新增章节
  router.post('/api/addCategory', jwt, app.controller.category.create);
  // 修改章节
  router.post('/api/updateCategory', jwt, app.controller.category.update);
  // 删除章节
  router.post('/api/deleteCategory', jwt, app.controller.category.destory);
  // 统计章节浏览量
  router.get('/api/addCategoryPvById', app.controller.category.addCategoryPvById);


  // 获取分类
  router.get('/api/classify', app.controller.classify.index);
  // 新增分类
  router.post('/api/addClassify', app.controller.classify.addClassify);
  // 根据id获取某一个具体分类
  router.get('/api/getClassifyById', app.controller.classify.getClassifyById);
  // 根据id删除某一个分类
  router.post('/api/deleteClassifyById', app.controller.classify.deleteClassifyById);
  // 更新分类
  router.post('/api/updateClassify', app.controller.classify.updateClassify);


  // 上传文件
  router.post('/api/uploadBookCover', app.controller.uploadBookCover.index);


  // 用户登录相关
  // 用户注册
  router.post('/api/signup', app.controller.user.signup);
  // 用户登录
  router.post('/api/signin', app.controller.user.signin);
  router.get('/api/getUserInfo', jwt, app.controller.user.getUserInfo);

  router.get('/api/getUserListByName', app.controller.user.getUserListByName);
  router.get('/api/getUserInfoById', app.controller.user.getUserInfoById);
  router.post('/api/updateUser', app.controller.user.updateUser);

  router.post('/api/resetPasswordById', app.controller.user.resetPasswordById);
  router.post('/api/deleteUserById', app.controller.user.deleteUserById);
  // 获取角色
  router.get('/api/getRoleList', app.controller.user.getRoleList);
};
